package com.pdsu.demo4;

import com.pdsu.demo4.demos.web.User;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@RestController
@RequestMapping("/user")
public class User2Controller {
    // 用 List 模拟数据库
    private List<String> userList = new ArrayList<>();
    private Integer nextId = 1; // 自增 id 简单模拟

    public User2Controller() {
        // 初始化两个用户
        userList.add("Alice");
        userList.add("Bob");
    }

    // 1）查询所有用户
    @GetMapping
    public List<String> listUsers() {
        return userList;
    }

    // 2）根据 id 查询单个用户
    @GetMapping("/{id}")
    public String getUser(@PathVariable("id") Integer id) {
//        for (User user : userList) {
//            if (user.getId().equals(id)) {
//                return user;
//            }
//        }
//        // 找不到就返回 null（真实项目应该返回 404，这里先简单处理）
        return userList.get(id);
    }

    // 3）新增用户
//    @PostMapping
    @GetMapping("/add/{name}")
//    public User createUser(@RequestBody User user) {
        public String createUser(@PathVariable("name") String name) {
//        user.setId(nextId++);
        String newUserName = name.trim();
        userList.add(name);
        return name;
    }

    // 4）删除用户
    @GetMapping("/delete/{name}")
    public String deleteUserByName(@PathVariable("name") String name) {
        // 非空校验 + 去空格
        if (name == null || name.trim().isEmpty()) return "删除失败：用户名不能为空";
        String target = name.trim();
        boolean deleted = false;

        // 反向遍历删除（避免索引移位，无需额外集合）
        for (int i = userList.size() - 1; i >= 0; i--) {
            if (target.equals(userList.get(i))) {
                userList.remove(i);
                deleted = true;
            }
        }

        // 极简反馈
        return deleted ? "删除成功" : "删除失败：未找到用户";
    }



    // 4）修改用户
    @GetMapping("/edit/{id}/{name}")
    public Integer updateUser(@PathVariable("id") Integer id,@PathVariable("name") String name) {
//        for (User user : userList) {
//            if (user.getId().equals(id)) {
//                user.setName(updatedUser.getName());
//                return user;
//            }
//        }
//        // 找不到时简单返回 null
        userList.set(id,name);
        return id;
    }
}
